package br.com.marsso.sorte.server.service;

import java.util.List;
import java.util.logging.Logger;

import javax.persistence.RollbackException;

import br.com.marsso.sorte.domain.Modalidade;

public class ModalidadeService {
	
	private static final Logger log = Logger.getLogger(ModalidadeService.class
			.getName());
	private static EntityService service = new EntityService();

	public static int count() {
		return service.getEntity().createNamedQuery("Modalidade.listar")
				.getResultList().size();

	}

	public static void persist(Modalidade modalidade) {
		
		/*if (modalidade.getCdModalidade() == null) {
			modalidade.setCdModalidade(count() + 1);

		}*/

		log.info("Persistindo: " + modalidade.toString());
		try {
			service.getEntity().getTransaction().begin();
					
			service.getEntity().persist(modalidade);

			service.getEntity().getTransaction().commit();

		} catch (Exception e) {
			log.severe("Erro geral ao persistir: " + modalidade.toString()
					+ e.getMessage());
			service.getEntity().getTransaction().rollback();
			e.printStackTrace();
		}
	}

	public static Modalidade create() {
		return new Modalidade();

	}

	@SuppressWarnings("unchecked")
	public static List<Modalidade> list() {
		return service.getEntity().createNamedQuery("Modalidade.listar")
				.getResultList();
	}

	public static Modalidade find(Integer id) {
		log.info("Buscando Modalidade: ID = " + id);
		return (Modalidade) service.getEntity()
				.createNamedQuery("Modalidade.buscarModalidade")
				.setParameter("cdModalidade", id).getSingleResult();
	}

}
